package com.alter.java.ai.langchain4j.assistant;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;

import static dev.langchain4j.service.spring.AiServiceWiringMode.EXPLICIT;

/**
 * 创建记忆对话智能体。
 * 创建一个记忆对话的智能体，并使用指定的模型和内存进行对话。
 * 当AIService由多个组件（大模型，聊天记忆，等）组成的时候，我们就可以称他为智能体了
 */
@AiService(
            wiringMode = EXPLICIT,//显式
            chatModel = "qwenChatModel",//模型
            chatMemory = "chatMemory"//聊天记忆，引用我们自定义的配置类 MemoryChatAssistantConfig.java
    )
public interface IMemoryChatAssistant {
        /**
         * 一个参数使用注解 @UserMessage：获取用户输入
         */
        @UserMessage("你是我的好朋友，请用上海话回答问题，并且添加一些表情符号。 {{message}}") //{{message}}表示这里
        String chat(@V("message") String message);

}


